Interrupt monitor apparatus in a computer system



March 31, 1970 5, HARMQN ET AL 3,504,347

INTERRUPT MONITOR APPARATUS IN A COMPUTER SYSTEM Filed July 5. 1967 12 Sheets-Sheet 1 FEE/PHFEHL All/4L 06 z/vpur sewn/5e .151. an n H W m "5" u I. EC 0 I M E u WE u n W M2 f. n P |lI.-lIl l u 1 :m n u u AL u 5 6 m 7 c r M M d, m W 2 g m E HWF II. HM w vw m zm a a 2% p em 4 1 pm m A 0 a c m H .m W m r Mww a r we Z w w M W c p my OUlPl/I' 0672/81/70? INVENTORS SHERRI]. A. HARMON EDWARD Av HERRERA ATTORNEY March 31, 1970 s. A. HARMON ET AL 3,504,347

INTERRUPT MONITOR APPARATUS IN A COMPUTER SYSTEM Filed July 3. 1967 12 Sheets-Sheet 5 March 31, 1970 s. A. HARMON ETAL 3,504,347

INTERRUPT MONITOR APPARATUS IN A COMPUTER SYSTEM 12 Sheets-Sheet 8 Filed July 5. 1967 V PPM? F/Mf March 31, 1970 s. A. HARMON E 3,504,347

NITOR APPARATUS IN A CQMPUTEE SYSTEM INTERRUPT MO Filed July 5, 1967 12 Sheets-Sheet 10 mw WW INTERRUPT MONITOR APPARATUS IN A COMPUTER SYSTEM Filed July 3. 196'? March 31, 1970 5, HARMQN ET AL 12 Sheets-Sheet 11 iii/03 WDAZ MEPC' United States Patent 3,504,347 INTERRUPT MONITOR APPARATUS IN A COMPUTER SYSTEM Sherri] A. Harmon and Edward A. Herrera, Phoenix,

Ariz., assignors to General Electric Company, a corporation of New York Filed July 3, 1967, Ser. No. 650,968 Int. Cl. G06f 1/00 US. Cl. 340l72.5

ABSTRACT OF THE DISCLOSURE BACKGROUND OF THE INVENTION Field of the Invention Description of the Prior Art SUMMARY OF THE INVENTION BRIEF DESCRIPTION OF THE DRAWINGS DESCRIPTION OF THE PREFERRED EMBODIMEN Computer Systcm-tivueral Information Representation. Data words. Instruction words Auxiliary w0rds Claims Memory r Arithmetic and control unit. Peripheral inputfoutput buffer. Input 'output expandcL Timing control unit Automatic Program lntorrupt Ur Interrupt Munitor-GeneraL Interrupt Monitor-Details" Interrupt Monitor-0perati0n ABSTRACT OF THE DISCLOSURE A computer system including a memory, an arithmetic and control unit for executing a main program, apparatus for requesting interruption of execution of the main program and apparatus for receiving such program interrupt requests and selectively permitting interruption of execution of the main program to service the requests. Monitor apparatus is provided to determine whether or not program interrupt requests in the computer system are serv iced within predetermined time periods. Detection by the monitor apparatus of a failure of the computer system to properly service an interrupt request results in corrective action initiated by the monitor apparatus.

BACKGROUND OF THE INVENTION Field of the Invention This invention relates to computer systems for processing information and, more particularly, to apparatus for controlling the execution of programs in a computer system. Specifically, the invention relates to apparatus for monitoring the servicing of program interrupt requests in a computer system.

Description of the Prior Art In a computer system, interruption of execution of the main program in the system may be periodically or intermittently requested to permit information transfers between memory and peripheral devices and to allow various other operations to be performed in the system. To insure proper operation of the computer system and to prevent loss of information, it is often necessary that program interrupt requests be honored and serviced within prescribed periods of time. Many events and situations can occur in a computer system to prevent timely servicing of program interrupt requests. For example, the number of program interrupt requests present at a given time 3,504,347 Patented Mar. 31, 1970 under certain circumstances may exceed the capacity of the computer system to service the requests, with the result that the lower-priority interrupt requests are not serviced on a timely basis. Timely servicing of program interrupt requests can also be prevented by program errors. For example, if the free time of the system is being employed to debug new programs. the new program may enter a loop which would interfere with execution of the main program and servicing of program interrupt requests in the system. In some systems, an instruction or command may be employed in the main program to inhibit the servicing of program interrupt requests. Such inhibiting of servicing of program interrupt requests over a long period by means of a program instruction may be undesirable.

Accordingly, it is an object of this invention to provide an improved interrupt arrangement in a computer system.

It is another object of this invention to provide apparatus in a computer system for detecting the failure of an interrupt request to be serviced within a predetermined period of time.

It is another object of this invention to provide apparatus in a computer system responsive to detection of the failure of a program interrupt request to be serviced within a predetermined period of time for permitting the interrupt request to be promptly serviced.

It is a further object of this invention to provide apparatus in a computer system for anticipating the possibility that a given program interrupt request of a selected type will not be serviced before another interrupt request of. the same type occurs and for causing the given interrupt request to be promptly serviced.

SUMMARY OF THE INVENTION The foregoing objects are achieved, in accordance with the illustrated embodiment of the invention. by providing apparatus for monitoring the servicing of predetermined interrupt requests in the system. The interrupt monitor apparatus includes logic gates for receiving predetermined interrupt request signals and the outputs of level change detector flip-flops responsive to these request signals. Each level change detector flip-flop is set to the l-state at the trailing edge of the corresponding interrupt request signal and is reset when servicing of the interrupt request is initiated in response to the interrupt request signal. Interrupt error signal WDAL issues and flip-flops WDI and WDZ of the monitor apparatus are set to the l-state if a level change detector flip-flop corresponding to one of the predetermined interrupt request signals is still set to the l-state when the leading edge of another such interrupt request signal occurs. When set to the 1- state, flip-flops WDI and WDZ enable several logic gates and set flip-flop MRI to the l-state. In the l-state, flipfiop MRI prevents the memory of the system from being addressed from the I-Register, the P-Register or the Automatic Program Interrupt Unit of the system. Signal MERC issues from logic gates to hold the system in Sequence Control State 1. Address signals DB04 and D802 are generated by logic gates and transmitted to memory to automatically address memory location 00024 causing the contents of this memory location to be transferred from memory to the Arithmetic and Control Unit. The contents of memory location 00024 initiate corrective action in the computer system to permit the program interrupt request to be promptly serviced.

BRIEF DESCRIPTION OF THE DRAWINGS The subject matter of the invention is particularly pointed out and distinctly claimed in the concluding portion of the specification. The invention, however, both as to organization and method of operation may best be understood by reference to the following description 3 taken in connection with the accompanying drawings, in which:

FIGURE 1 is a block diagram of a computer system to which the instant invention is applicable;

FIGURES Za-Ze are symbolic diagrams illustrating the organization of the various types of word formats employed in the computer system of FIGURE 1;

FIGURES 3a3g illustrate symbols employed to represent circuit elements in the computer system of FIG- URE 1;

FIGURE 4 is a block diagram illustrating the information storage elements, the information and control signal transfer paths between these elements, and the major control elements of the computer system of FIGURE 1;

FIGURE 5 is a block diagram illustrating the organization of the clock generator employed in the computer system of FIGURE 1 and illustrating the wave form of the basic clock signal provided by the clock generator for use in the system;

FIGURE 6 is a block diagram illustrating the details of the Timing Control Unit of the Arithmetic and Control Unit in the system of FIGURE 1;

FIGURE 7 is a timing diagram illustrating the relationship of the timing signals generated in the Timing Control Unit of the computer system;

FIGURE 8 is a block diagram illustrating the major components of the automatic program interrupt unit of the computer system of FIGURE 1;

FIGURE 9 is a logic diagram illustrating level change detector flip-flops of the automatic program interrupt unit;

FIGURE 10 is a logic diagram illustrating the input signals to flip-flop PMT of the computer system;

FIGURE 11 is a diagram illustrating the logic employed to generate signal WECO in the computer system;

FIGURE 12 is a block diagram illustrating interrupt monitor apparatus of the invention in relation to other major components of the computer system;

FIGURE 13 illustrates diagrammatically the logic structure of the interrupt monitor apparatus of the invention;

FIGURE 14 illustrates timing flip-flops employed in the interrupt monitor apparatus of the invention; and

FIGURES l5, l6 and 17 are timing diagrams illustrating the operation of the interrupt monitor apparatus of the invention.

DESCRIPTION OF THE PREFERRED EMBODIMENT Computer System-General FIGURE 1 illustrates diagrammatically a typical computer system organized to control or monitor a process. The major units of the computer system are Arithmetic and Control Unit 10, Memory 11 comprising Memory Multiplexer 12 and Magnetic Core Storage Unit 13, Bulk Storage Memory 14, which may comprise a disc or drum storage unit, Automatic Program Interrupt Unit 15, Input/Output Expander 18, Peripheral Input/Output Buffer 16, Peripheral Devices 17, Analog Input Scanner 19, Digital Input Scanner 20, Multiple Output Distributor 21 and Computer Console 22. Peripheral Devices 17, connected to Peripheral Input/Output Buffer 16, may include, for example, an input/output typer, a logging typer, an alarm typer, a tape or card punch and a tape or card reader. A Peripheral Controller 23 may also be connected to Memory Multiplexer 12 with Peripheral Devices 24 communicating with Memory 11 through Peripheral Controller 23. Peripheral Devices 24 may include, for example, data links, high-speed printers, card readers, card punches, magnetic tape units, or disc stor age units. The lines interconnecting the various units illustrated in FIGURE 1 represent symbolically paths of information and control signal transfer in the computer system.

The computer system responds to a plurality of distinct instructions which are supplied in the sequential order necessary to perform particular processing, control and monitoring functions. Magnetic Core Storage Unit 13 of Memory 11 stores data words which are to be processed, data words which are the result of processing, data words representing process parameters and other process information, instruction words and auxiliary words for addressing and control. Memory Multiplexer 12 includes control circuitry to permit transfer of information between Magnetic Core Storage Unit 13 and Arithmetic and Control Unit 10, Bulk Storage Memory 14 and Peripheral Controller 23.

Bulk Storage Memory 14 may comprise drum or disc storage units or magnetic tape storage units used for storing large quantities of information or instruction routines which can be transferred to Magnetic Core Storage Unit 13 as required for use in the computer system.

Arithmetic and Control Unit 10 controls the sequence of events required for instruction execution in the computer system, performs binary arithmetic operations, and serves as a path for transfer of information between Memory 11 and Peripheral Input/Output Buffer l6 and Input/ Output Expander 18. Arithmetic and Control Unit 1 contains the logical elements necessary to access Memory 11 and to perform all operations required for instruction execution. Arithmetic and Control Unit 10 communicates with Memory 11 to obtain instruction words, auxiliary words, data words on which operations are to be performed, to store data words on which operations have been performed, to obtain or store data words representing process parameters and other process information and to obtain control signals for synchronizing the timing of Arithmetic and Control Unit 10 with operations in Memory 11.

Peripheral Input/Output Buffer 16 communicates with Arithmetic and Control Unit 10 through Input/Output Expander 18 and serves as a data buffer, translator, and sequencer for Peripheral Devices 17. Peripheral Input/ Output Buffer 16 includes a plurality of channels, each connected to one of Peripheral Devices 17 to handle the data transfers between Memory 11 and that device. A plurality of Peripheral Input/Output Buffers may be provided to communicate with Arithmetic and Control Unit 10 through Input/Output Expander 18 when the peripheral device requirements of a specific system exceed the capacity of a single Peripheral Input/Output Buffer.

Input/Output Expander 18 is a communication link between Arithmetic and Control Unit 10 and Peripheral Input/Output Butler 16 and between Arithmetic and Control Unit 10 and the input and output devices connected to the control and/or monitored process. Input/Output Expander 18 is connected to Arithmetic and Control Unit 10 through l/O Bus 25. Input/Output Expander 18 serves as a multiplexer for digital and analog inputs from the process and as a multiplexer and amplifier for output signals to the process. Signal inputs may be from contact closures, pulse generators, or measuring devices. Input/ Output Expander 18 communicates corrective or alarm information to the process to change the process control variables or to activate the proper alarm devices or displays. A plurality of Input/Output Expanders may be connected to Arithmetic and Control Unit 10 if the requirements of the system exceed the capacity of a single Input/ Output Expander. Arithmetic and Control Unit It) employs the control information stored in Memory 11 to decide whether control or alarm actions are required and provides the necessary control or alarm information to Input/Output Expander 18. Input/Output Expander 18 also provides a transfer path for information transmitted between Arithmetic and Control Unit 10 and Peripheral Input/Output Buffer 16.

Analog Input Scanner 19 selects and amplifies process analog sensor signals and also converts analog information into a digital form compatible with that used in 5 Arithmetic and Control Unit 10 and other system elements. The digital output signals of Analog Input Scanner 19 are transmitted to Arithmetic and Control Unit 10 through Input/Output Expander 18.

Digital Input Scanner 20 selects and conditions, by filtering, amplifying and attenuating, contact or digital process inputs. The output signals of Digital Input Scanner 20 are applied to Arithmetic and Control Unit 10 through Input/Output Expander 18. Multiple Output Distributor 21 receives digital, decimal and analog outputs from Input/Output Expander 18 and transmits this information to the controlled and/or monitored process and to operator displays.

Automatic Program Interrupt Unit 15 detects and identifies program interrupt signals from Peripheral Input/ Output Buffer 16 and Peripheral Controller 23 indicating that a peripheral device is ready to perform a data transfer. Automatic Program Interrupt Unit 15 also detects signals which indicate condition changes in the controlled and/or monitored process. Upon detection of interrupt request signals, Automatic Program Interrupt Unit 15 causes a word to be transferred to Arithmetic and Control Unit 10 from the memory location identified by the memory address supplied by Automatic Program Interrupt Unit 15, corresponding to the highest priority interrupt request present at that time. This word may be a single instruction word or the first instruction of a subroutine, or may be a control word for directing an information transfer with a peripheral device.

Computer Console 22 provides a communication path between the operator and computer system for programming and maintenance. In addition, Computer Console 22 is provided with visual displays illustrating the instantaneous states of various registers and elements within Arithmetic and Control Unit 10 to aid the operator in monitoring system and program performance.

INFORMATION REPRESENTATION The computer system of FIGURE 1 stores and processes information represented by the binary code. In the binary code each element of information is represented by a binary digit, sometimes termed a bit," each binary digit being either a 1 or a 0." In the computer system, a binary 0 is represented by a potential of approximately 0 volt or ground while a binary l is represented by a positive potential relative to ground. The fundamental unit of information employed in processing and communication in the described system is the word, each word comprising 24 binary digits. The first binary digit or bit of a data word is termed the mostsignificant digit (MSD) of the word and is designated as bit 23. The last binary digit of the word is termed the least-significant digit (LSD) of the Word and is designated as bit 0. The binary digits between bits 23 and 0 are accorded successively decreasing order of significance.

Three general categories of words are employed in the computer system of FIGURE 1, viz: (1) data words, (2) instruction words, and (3) auxiliary Words for address and control. Auxiliary words are of the following types:

(a) index Word (b) TIM/TOM control word The organization of each type of word is illustrated in FIGURES 2a2e.

Data words Data in the computer system of FIGURE 1 is in fixed-point binary form. Each binary data word represents a single number. The binary digit in bit position 23 of the data word, termed bit 23, identifies the sign of the binary data word. The organization of a binary data word is illustrated in FIGURE 2a. Bit 23 is the MSD and bit 0 is the LSD of the binary data word. Bit 0 of the binary data word thus represents 2" and is equal to the decimal number 1, if bit 0 is a binary 1.

Bit 1 represents 2 and is equal to the decimal number 2 if bit 1 is a binary 1. Bit 5 represents 2 and is equal to the decimal number 32, if bit 5 is a binary 1. Thus, in general, the (i)th bit of the binary data word represents 2 if the (i)th bit is a binary l. The (i)th bit represents 0 if the bit is a binary 0. During information transfers between Memory 10 and certain peripheral devices, the binary data Words being transferred are selectively divided into 2 bytes of 12 bits each, 3 bytes of 8 bits each or 4 bytes of 6 bits each.

Positive binary data Words are stored and operated upon in true binary while negative binary data words are stored and operated upon in two's complement form. The twos complement of a binary number is its ones complement increased by one. The ones complement of a binary number is the number which results when each binary l in the number is replaced by a binary 0 and each binary 0 is replaced by a binary 1. For convenience, a binary word may be more compactly represented by a series of octal digits in which each octal digit represents three adjacent binary digits.

Instruction words Operations for accomplishing processing and control are performed in the computer system under the control of a series of instruction words which are stored in Magnetic Core Storage Unit 13 and executed one at a time. The sequence in which instructions are executed is called the P-Sequence or Program Sequence and is controlled by a counter. Instruction words executed by the computer system of FIGURE 1 are of five types, viz, full operand, quasi, Gen I, Gen II and Gen III instructions.

The organization of full operand and quasi instruction words is illustrated in FIGURE 2b. Full operand instruction words are most commonly used in the computer system of FIGURE 1. These instructions are used to perform arithmetic operations, logical operations, index control operations, and data transfers to and from Memory 10. The operation code of a full operand instruction word (bits 23-18) identifies the operation or program step to be performed. The operand address field (bits 130) designates the address of a storage location in Memory 10 from which a word is to be extracted for processing or control or in which a word is to be stored during execution of the instruction.

Quasi instruction words are utilized to initiate quasi subroutines which perform special functions. The address in Memory 10 of the first instruction Word in a quasi subroutine is defined by the operation code of the quasi instruction word. The operand address field of the quasi instruction word is stored in memory during execution of the quasi subroutine.

Bits 1S17 of the instruction word illustrated in FIG- URE 2b are index bits which are employed to indicate whether the operand address of the instruction word is to be modified by an index quantity and, if index modification is specified, the location in memory of the index quantity. If bits 17-15 of an instruction word are all binary Os, no index modification will occur when the command word is transferred to Arithmetic and Control Unit 10 for execution. If bits 17-15 are any other possible combination (001-111), the operand address of the instruction word will be modified by adding to it the contents of the memory location designated by the index bits (OOOOI OOOW Modification of the operand address of an instruction word may also be efiected under control of bit 14, termed the relative addressing bit, of the instruction word. If bit 14 is a binary l, the final address of the operand is automatically determined in the computer system relative to the address of the instruction being executed. Relative addressing permits the instructions of a program to address other memory locations by specifying the number of memory locations between the instructiton location and the desired memory location. Programs so written are easily relocated and executed anywhere in memory.

The organization of a Gen I, Gen II or Gen III instruction word is illustrated in FIGURE 2c. The operation code of the instruction word (bits 23-18) identifies the instruction as a Gen I instruction, a Gen II instruction or a Gen III instruction. Bits 14-0 comprise a microcoded field which is employed to specify a plurality of sub-operations to be performed under control of the operation code. As with the full operand and quasi instructions, the microcoded field may be modified by an index quantity specified by the index bits 17-15. Gen I commands are used primarily to effect bit manipulation within the principal accumulator or A-Register of Arithmetic and Control Unit 10. Gen II commands are employed within the computer system to (a) select peripheral devices, (b) transfer data to or from these devices, and (c) provide for program control transfers as determined by various internal or external conditions to which the system is responsive. Gen III commands are used to manipulate the contents of the principal accumulator or A-Register and the secondary accumulator or Q-Register and to affect other elements within Arithmetic and Control Unit 10.

Auxiliary words The computer system permits address and modification to materially reduce total processing time and program memory requirements. During instruction processing, the system follows this general sequence:

(1) The instruction word is obtained from memory.

(2) Any address development specified by the indexing bits or the relative addressing bit is performed.

(3) The instruction is executed.

The address development specified by the index bits in step 2 of the above sequence is effected in the computer ystem by the use of index words. The organization of an index word is illustrated in FIGURE 2d. In operand address or microcoded field development employing an index word, the index field (bits 14-0) of the index Word is added to the operand address field or microcoded field of the instruction word. The instruction is then executed using the modified operand address or modified microcoded field.

FIGURE 2e illustrates another type of auxiliary word, viz a control Word employed in executing a TIM operation for transferring information from a peripheral device to Memory 10 or a TOM operation for transferring information to a peripheral device from Memory 10. The N-Field (bits 23-18) of the control word specifies, in ones complement form, the number of words to be transferred between the corresponding peripheral device and Memory 10. The N-Field may specify up to 63 words. The C-Field (bits 17 and 16) of the control word specifies at any given point in time the number of bytes yet to be transferred between the peripheral device and Memory 10 to complete transfer of the current word. The C-Field is initially set to equal the P-Field. The P-Field (bits 15 and 14) specifies, in twos complement form, the number of bytes, one, two, three or four, in each word transferred between the peripheral device and Memory 10, as follows:

Number of Bit 15 Bit. 14 bytes per word ll U 4 The Y-Field (bits 13-0) of the control word initially specifies the starting address less one of the group of memory locations to which or from which data is to be tranfiferred.

System Circuit Elements The functions of circuits useful as elements of the computer system of FIGURE 1 will now be described. Circuits for performing these functions are well known in the art. The following circuits find general employment in the computer system: AND-gates, OR-gates, Inverters, NAND-gates, NOR-gates, Flip-Flops and Full Ad ers. The symbols illustrated in FIGURES 3a-3g are employed throughout the drawings to represent the corresponding circuits.

AND-gate The AND-gate provides the logical operation of conjunction for binary 1 signals applied thereto. Since a b nary l is represented by a relatively positive potential in the system, the AND-gate provides a positive output signal representing a binary 1 when, and only when, all the input signals applied thereto are positive and represent binary ls. The symbol identified by reference 3 in FIGURE 3a represents a two-input AND-gate. Such an AND-gate delivers a binary 1 output signal on output line 31 only when each of the two input signals applied on respective input lines 32 and 33 are binary ls.

The two input signals applied to AND-gate 30 of FIG- URE 3a are designated FCFA and TT6E. The output signal of AN D-gate 30 is represented by FCFA TT61, a conjunctive logic expression. This form of expression is used in logic equations, which are also termed Boolean equations, and which are often employed to represent a logical structure. The conjunctive operation on two signals, such as the FCFA and TT6E signals, is indicated by writing the two signal designation terms adjacent to each other with no operator notation between them, as written above, or with the operator notation between the terms, as follows: FCFA-TTGE. This conjunctive expression is read as FCFA and TTfiE.

Alternatively, the output of ANDgate 30 may be identified by another signal designation, such as signal designation HCEl in FIGURE 30. Output signal I-lCEl of AND-gate 30 is a binary 1, therefore, only when both input signals ECFA and TTGE are binary ls. This relationship between the output signal AND-gate 30, the input signals to AND-gate 30, and the logical operation of conjunction performed by AND-gate 30 may be expressed in the form of a logic equation, viz:

This logic equation fully represents the conditions necessary to the generation of output signal HCEl and may be employed to structurally represent the relationship between signal HCEl and signals FCFA and TT6E.

The logical operation of conjunction is not limited to AND-gates having only two input signals, but instead is applicable to AND-gates having any number of input signals. In each such instance, the output signal of the corresponding AND-gate represents a binary 1 when, and only when, all of the input signals applied to the gate represent binary ls.

OR-gate The OR-gate provides the logical operation of inclusive- OR for binary 1 input signals applied thereto. In the computer system, since a binary 1 is represented by a relatively positive signal, the OR-gate provides a positive output signal representing a binary 1 when any one or more of the input signals applied thereto are positive and represent binary 1's. The symbol identified by reference numeral 35 in FIGURE 3!) represents a two-input OR-gate. Such an OR-gate delivers a binary 1 output signal on output line 36 when either or both input signals applied to input lines 37 and 38 represent binary ls.

The two input signals applied to OR-gate 35 of FIG- URE 3b are designated FB23 and W. The output signal may be represented by FBZZ-l-W, an inclusive-OR disjunctive logic expression. This form of expression is used in logic equations which may be employed to represent logical structures. The inclusive-OR operation on any two signals, such as the FB23 and HTTF signals, is indicated by writing the two signal designation terms adjacent each other with the operator notation between the terms, as written above. This inclusive-OR expression is read as EH23 or HTIF.

Alternatively, the output of OR-gate 35 may be identified by another signal designation, such as signal designation H231 in FIGURE 3b. Output signals H231 of OR- gate 35 is a binary 1, therefore, when either or both of input signals F323 and HTTP are binary 1's. This relaitonship between the output signal of OR-gate 35, the input signals to OR-gate 35 and the logical operation of inclusive-OR performed by OR-gate 35 may be expressed in the form of a logic equation as follows:

Inverter The inverter provides a logical operation of inversion, or NOT, for an input signal applied thereto. The inverter provides a relatively positive output signal, representing a binary 1, when the input signal applied to the inverter is relatively negative, representing a binary 0. Conversely, the inverter provides an output signal representing a binary when the input signal represents a binary 1.

The symbol identified by reference number 40 in FIG- URE 30 represents an inverter. Inverter 40 delivers a binary 1 output signal on output line 41 when the input signal applied on input line 42 represents a binary 0, and provides a binary 0 output signal on output line 41 when the input signal on line 42 is a binary l.

The output signal delivered by the inverter is designated as having the inverse binary logical significance of the input signal. The input signal applied to the inverter of FIGURE 30 is designated as signal HTIM. The output signal of this inverter is therefore designated as signal HTIM, which signifies that the output signal has inverse logical significance compared to the input signal.

This designation for a signal having inverse binary logical significance with respect to another signal is employed generally in the description of the system. Thus, a signal designation, such as DNDP, indicates that when the DNDP signal is relatively positive, representing a binary l, the DNDP signal is relatively negative, representing a binary 0, and vice versa. It is to be understood herein that whenever a particular signal is generated, its logical inverse may be generated by applying the original signal to an inverter.

NAND-gate The NAND-gate provides the logical operation of conjunction and inversion for binary 1 signals applied thereto. In the system, since a binary 1 is represented by a positive signal, the NANDgate provides a relatively negative output signal representing a binary 0 when, and only when, all of the input signals applied to the NAND-gate are positive, representing binary ls. The symbol identified by numeral 45 in FIGURE 3d represents a two input NAND-gate. Such a NAND-gate delivers a binary 0 output signal on output lead 46 only when each of the two input signals applied to input leads 47 and 48 represents a binary 1. The two input signals applied to NAND-gate 45 are designated HTTP and HB12. The output signal 10 of NAND-gate is designated HTIM. The logical re lation between the output and input signals of NAND-gate 45 may be expressed by the logic equation:

logical significance with respect to signal HTIM as follows:

HTTF HBIZ HTIM This equation indicates that output signal HTIM is a binary 1 when both input signals HTTP and HB12 are binary ls; this is equivalent to saying that output signal HTIM is a binary 0 when both input signals HTTP and HB12 are binary ls; as previously discussed.

The logical operation of conjunction and inversion is not limited to NAND-gates having only two input signals, but is applicable to NAND-gates having any number of input signals. In each such instance, the output signal of the corresponding NAND-gate represents a binary 0 when, and only when, all of the input signals applied to the NAND-gate represent binary ls.

NOR-gate A NOR-gate provides the logical operation of inclusiveor and inversion for binary 1 input signals applied thereto. In the system, since a binary 1 is represented by a positive signal, a NOR-gate provides a relatively negative output signal representing a binary 0 when any one or more of the input signals applied thereto are positive and represent binary ls. The symbol identified by reference numeral 50 in FIGURE 3e represents a two input NOR-gate. Such a NOR-gate delivers a binary 0 output signal on output lead 51 when any one or both of the input signals applied to input leads 52 and 53 represent binary ls.

The two input signals applied to NOR-gate 50 are designated F823 and HTTF. The output signal is designated m. The logical relationship between the input and output signals of NOR-gate 50 may be represented by the following equation:

1 B23+HTTF=H232 This equation indicates that output signal H232 is a binary 0 when either of input signals FB23 or H'ITF are binary ls. The equation may also be written as:

F323 This equation indicates that H232 is a binary 1 when both input signals F823 and HTTF are binary ls, i.e. when both input signals FB23 and HTTP are binary Os. Under all other conditions, output signal H232 is a binary 0. The logical relation between the output and input signals of NOR-gate 50 may also be expressed in terms of signal H232 as follows:

The flip-flop provides temporary storage of a binary digit of data or control information. A pair of output signals are delivered by the flip-flop to denote the type of binary digit that is currently being stored.

The flip-flop, or bistable multivibrator, is a circuit adapted to operate in either one of two stable states. The fiip-fiop may be transferred to one or the other of its states in response to suitable input signals to store information. ln one of its stable states (l-state), the hip-hop represents a binary 1 and in the other stable state (O-State), the flip-flop represents a binary 0. When the flip-flop is transferred to the 1-state, it is said to be set. When the flip-flop is transferred to the -state, it is said to be reset.

A flip-flop is generally identified mnemonically in accordance with the function it performs. For example, a typical flip-flop employed in the system for control is designated the TTF flip-flop. The FTP designation stands for TIM/TOM and the "FTP flip-flop, when in the l-state, indicates that a TIM or a TOM operation is being performed in the System. A typical flip-flop employed in the system for temporary storage of data is the I14 flip-flop. The symbol identified by reference numeral 55 in FIGURE 3] is employed to represent a fliptlop. Symbol 55, in this instance, represents the I14 flip-flop.

The 114 flip-flop is employed to temporarily store the fifteenth bit in the l-Register. The two lines 56 and 57 entering the left-hand side of the flip-flop symbol are input lines and provide the two required trigger signals. The line 58 entering the left-hand side of the flip-flop is an input line providing the clock signal required to enable a change in state of the flip-flop. Line 56, the one input line, provides a one input (or set) signal and line 57, the zero input line, provides a zero input (or reset") signal. When the one input signal increases positively and the clock signal on input line 58 issues, the flip-flop is transferred to its l-state (or set state), if it is not already in the l-state. When the zero input signal increases positively and the clock signal on input line 58 issues, the flipfiop is transferred to its O-state (or reset state), if it is not already in the O-state. The notation FI14:UREL IBXl ECLK indicates the logical gate structure employed to generate the set trigger signal. Similarly, the notation FII-t SCO]. TSCA ECLK indicates the logical gate structure employed to generate the reset" trigger signal for the I14 flip-flop.

The two lines 59 and 60 extending from the right-hand side of symbol 55 are output lines that deliver the two output signals, viz P114 identifying the l-output signal and F114 identifying the O-output signal. When the 114 flip-flop is in the l-state, a relatively positive signal is delivered on the l-output line while a relatively negative signal is delivered to the O-output line. Conversely, when the I14 flip-flop is in the O-state, a relatively negative signal is delivered on the l-output line and a relatively positive signal is delivered on the O-output line. Flip-flop circuits are well known in the art and will not here be described in detail.

Register A register is a Set of flip-flops providing temporary storage for a group of related binary digits of data or control information. The size of a register is dependent on the number of binary digits of information to be stored. For example, the A-Register in the Arithmetic and Control Unit of the computer system is employed to temporarily store an information word and therefore comprises twentyfour flip-flops.

The flip-flops of a register are identified according to the register designation and the numerical significance of the information bits stored therein. Thus, a particular flip-flop of a register may be designated as the *Oi" flipflop, where O identifies the register and identifies the order of significance of the bit stored in the flip-flop. For example, flip-flop A23 stores the twenty-fourth or the most-significant bit stored in the A-Register while flip-flop B00 stores the least-significant bit stored in the B-Register. Data movement between the registers of the system is normally by parallel transfer of the bits stored in the flip-flops of one register to predetermined flip-flops of the receiving register. Data movement may also be accomplished by serial shift of bits between certain registers.

Full adder The full adder is employed in the computer system to perform binary arithmetic operations. The symbol identified by reference numeral 64 in FIGURE 3g is employed to represent a full adder. Symbol 64, in this instance. represents the U21 full adder. As illustrated in FIGURE 32, the full adder receives three input signals on lines 65, 66 and 67 and provides sum and carry output signals S and C on lines 68 and 69 respectively in addition to complementary sum and carry output signals 1S and U on lines 70 and 71 respectively. A plurality of full adder circuits may be employed to perform binary arithmetic operations on two data words each comprising a corresponding plurality of binary digits.

If all three inputs to a full adder are binary Us, the sum and carry output signals S and C are binary Os, while the complementary signals S and C are binary 1"s. If one of the full adder input signals is a binary 1, the sum output signal S is a binary 1 and the carry output signal C is a binary 0. If two input signals of a full adder are binary Is, the sum output signal S is a binary O and the carry output signal C is a binary 1. If all three input signals to a full adder are binary ls, both the sum and carry output signals are binary 1s The relationship between the input and output signals of a full adder. such as illustrated in FIGURE 3g, is represented in the following table:

Referring to FIGURE 3g, sum output signal U218 of full adder 64 is a binary 1 and output signal F213 is a binary 0 if either one or three inputs to full adder 64 are binary ls. In all other instances, output signal U21S is a binary t) and output signal [7178 is a binary 1. If either two or three inputs to full adder 64 are binary ls, carry output signal U21C is a binary I and output signal m is a binary O. In all other instances, output signal U21C is a binary 0 and output signal mm is a binary 1. Computer System-Details The computer system is shown symbolically in FIGURE 4 to illustrate the elements of the system which store data, the paths of data transfer between these elements, and major control elements of the system. Temporary storage of instruction, auxiliary and data words is provided, during processing and control operations, in the various registers of the system. Transfer of data between registers and other elements of the system, as indicated by the interconnecting lines of FIGURE 4, is normally effected by the parallel transfer of binary digits from the source register or element to the receiving register or element.

3,504,347 13 14 Memory ferred from Arithmetic and Control Unit 10 to Memory Data Register 81 through Memory Multiplexer 12 while 1 :5 a i s;g g sg isg gg gggfi fis ig g; information words stored in Memory Data Register 81 data words which have resulted from processing, data g g g ai g 3 832 5 2 132? g ggg gizz g words representing process parameters and other process 0 6 mm 1 information, instruction words to direct processing and FIGURE control and auxiliary words for addressing and control. Dur'ng a memory read oPfirauont Memory Prowdes Memory 11 f the Computer System is adapted to stow signal MDRY to Arlthmetic and Control Unit when up to 32 7 5 words f 2 bi h l a parity bi the information word from the addressed memory loca- Of the memory locations provided for storage of infor- 1O lion is available in Memory Data Rcgisief signal mation, the following are reserved for special purposes MRLS is provided to Arithmetic and Control Unit 10 by as indicated in the table: Memory 11 when the memory read or write operation RESE RVED MEMORY LOCAT [0 NS Memory Locations (Octal) Use Magnetic Core Storage Unit 13 of Memory 11 utilizes is completed. Signals MDRY and MRLS serve to syncoincident-current storage elements well known in the art. chronize operations in Arithmetic and Control Unit 10 The structure and operation of such storage elements are with operations in Memory 11. described, for example, in the publication by C. V. L.

Smith, Electronic Digital Computers, chapter 12, Mc- Amhmenc and control Graw-Hill Company, Inc., New York, 1959. The location Arithmetic and Control Unit 10 exercises operational of a word stored in Magnetic Core Storage, Unit 13 is COnii'OlOVBl the computer system in response to aplurality identified by the binary number representing the address of distinct instructions which are supplied thereto from of the particular storage location in the three-dimensional M mory 1 n he sequential order necessary to perform magnetic core matrix where the word is stored. To obtain a Particular Processing of Control Opfiralioh- The infori f r ti f Memory 11, th appropriate address matron which is processed by Arithmetic and Control Unit is supplied to Memory Address Register 80, illustrated in 10 8 uppli d primarily from Memory 11. This informa- FIGURE 4. Address decode circuits and sense amplifiers 'l is u ua y ransferred into and out of Memory 11 (not shown) cause the transfer of the contents of the d r Co t ol Of Arithmetic and Control Unit 10. address! memOrY location from Magnetic Core Storage 40 Arithmetic and Control Unit 10 comprises registers for Unit 13 to Memory Data Register 81, 35 Well kIlOWn temporarily storing data, logic circuits for transferring in the art, making the data word available to Arithmetic data through and between registers and flip-flops employed and Control Unit 10. as control signal sources. Arithmetic and Control Unit 10 The extracfion of an information word from a torage further il'lCiUdCS a timing control unit for controlling the location of Magnetic Core Storage Unit 13 may change timing of the Operations Performed y Arithmetic and the magnetic state of the individual cores comprising that Control Unit 10 and an Opfiratiohs Control Unit for diTCCtmemory location, destroying the information stored thereihg Operations Performed y Arithmetic and Control t i A ll known i h art, automatic apparatus i 10. FIGURE 4 illustrates diagrammatically the elements provided to immediately restore to the storage location of Arithmetic and Control Unit 1 which Store data, the the information ord transferred to Memory Data Regispaths Of data transfer between these elements and certain ter 81 control elements. Arithmetic and Control Unit 10 com- In storing an information word in Magnetic Core Storprises the following legisters, ShOWH in FIGURE 2 age Unit 13, the information word is transferred through B-RegiSief 100, l-Register 101, g Memory Multiplexer 12 from the Arithmetic and Conv-Rfigisifl L-Register 105 and iu t trot Unit 10 int Memory D t R i 31 Th dd 106. Arithmetic and Control Unit 10 also includes Parallel of the storage location into which the information wo-rd Adder Unit 110, Timing Control Unit 111, Operations is to be transferred is placed in Memory Address Register Control Unit 112 and control Signal rce Flip-Flops 30,11 dd d d apparatus d i hibi d i 113. Transfer of information between the registers and shown) of Memory 11 cause transfer f th i f i parallel adder unit of Arithmetic and Control Unit 10 d f Memory R i D 81 to h magnetic and other elements of the computer system, as indicated cores of the addressed storage location of Magnetic Core by the ihteFCOhheClihg lines of FIGURE 4, is normally Storage Unit 13, as well kno n i h art effected by parallel transfer of binary digits from the Memory Address Register illustrated in FIGURE 4, source element to the receiving element. The basic characteristics and functions of the registers and other elements 18 a reglster formmg part of Memory 11 which 65 are summarized below as a basis for the more detailed receives a 15-bit address through Memory Multiplexer 12 discussion of the lnvention. specifying the storage location of Magnetic Cole Storage B R egister is a 24-bit register comprising Fllp-Plops Unit 13 from which or to which an information word B23 B00 B R i eglster 100 stores all instruction and data 18 to be transferred via Memory Data Register 81. Memwords being transferred to or from Memory During ory Data Reg ster 81 also forms part of Mem y 11 a 7 the transfer of an instruction word from Memory 11 to 18 a 24-bit register for temporarily storing an information Arithmetic and 1 Unit 10 the operation Code f Wh1Ch 1$ to M Stored Maghehc Core S[0l'age index bits and relative addressing bit of the instruction Uhlt 13 {luring a memory Write Operahoh which has word are transferred in parallel from BRegister 100 to been received from Magnetic Core Storage Unit 13 during I-Register 101 while the address field of the instruction a memory read operation. Information words are trans- 5 word is transferred in parallel from B-Register 100 to Parallel Adder Unit 110. The entire contents of B-Register 100 may also be transferred in parallel to Parallel Adder Unit 110. In transferring information from Arithmetic and Control Unit 10 to Memory 11, the information word in B-Register 100 is transferred in parallel to Memory Multiplexer 12. Information is thus transferred in parallel from B-Register 100 to Memory Multiplexer 12, I-Register 101 and Parallel Adder Unit 110.

B-Register 100 is adapted to receive, by parallel transfer, the contents of Memory Data Register 81 and the output of Parallel Adder Unit 110. B-Register 100 may serve as an extension of A-Register 102 when performing a left or right shift. During a left shift, the contents of either Flip-Flop B22 or B23 of B-Register 100, as specified by the instruction word, are transferred to Flip-Flop A of A-Register 102. During a right shift, the contents of Flip-Flop A00 of A-Register 102 are transferred to either Flip-Flop B22 or B23 of B-Register 100, as specified by the instruction Word. During a multiplication operation, B-Register 100 stores the multiplier and upon completion of the multiplication operation, holds the least-significant bits of the product. During a division operation, B-Register 100 holds the least-significant bits of the dividend and, upon completion of the division operation, stores the quotient. The contents of B-Register 100 are shifted left circular during a TIM or TOM input or output operation. During a left circular shift, the binary digit stored in Flip-Flop 823 of B-Register 100 is transferred to Flip-Flop B00 as the contents of B-Register 100 are shifted left circular through one bit position.

I-Register 101 is a 25-bit register for storing the instruction word which is to be executed by Arithmetic and Control Unit 10. I-Register I comprises Flip-Flops 123400 and IRA. The extra bit position has as its purpose the provision of relative addressing capability. The operation code of the instruction word may have any one of a plurality of bit configurations, each configuration directing a fundamentally different processing or control operation in the computer system. ]-Register 101 is adapted to receive, by parallel transfer, the contents of Flip-Flops B23B14 of B-Register 100, the output of Parallel Adder Unit 110 and the contents of J-Counter 106. The contents of I-Register 101 are applied in parallel to Parallel Adder Unit 110. The information stored in Flip-Flops 114-109 is applied in parallel to V-Register I 104. Similarly, the contents of Flip-Flops 114-100 are applied in parallel to P-Register 103 while the contents of Flip-Flops I04I00 are applied to J-Counter 106. During the multiplication operation, I-Register 101 stores the multiplicand and during a division operation stores the i divisor.

A-Register 102 is a 24-bit register comprising Flip- Flops A23-A00. A-Register 102 is adapted to receive, by parallel transfer, the output of Parallel Adder Unit 110. The contents of A-Register 102 are also applied in parallel to the inputs of Parallel Adder Unit 110. A-Register 102 stores the augend during an add operation, the minuend during a subtract operation and the sum or difference upon completion of the operation. During a multiplication operation, A-Register 102 stores the partial product and during a divide operation stores the twenty-four mostsignificant bits of the dividend. Upon completion of a multiplication operation, A-Register 102 stores the twentyfour most-significant bits of the product and upon completion of a divide operation stores the 24-bit remainder. As described in conjunction with B-Register 100, A-Register 102 may be shifted left or right. In addition, A-Register 102 may be shifted with the information being transmitted to Flip-Flop A23 for each bit position shifted, being derived from Flip-Flop A00 or other flip-flop of A- Register 102. During a left shift, the contents of flip-flop A23 are lost.

P-Register 103 is a -bit counter comprising Flip- Flops P14-P00. The sequence in which successive instructions are executed is controlled by P-Register 103 which serves as a program counter. The count in P-Register 103 is used to provide the address of instruction worns in memory ann is advanced in response to execution of an instruction to form the address of the next instruction to be executed. The amount by which the P-Register count is advanced is determined by the type of action required in Arithmetic and Control Unit 10 as follows:

(a) Normal Program Sequencecount in P-Register advanced by 1.

(b) Jumpcount in P-Register advanced by 2.

(c) BranchP-Register is set to quantity specified 'ry the address field of the branch instruction.

P-Register 103 is adapted to receive by parallel transfer information from Flip-Flops l14l00 of I-Register 101. The contents of P-Register 103 may be transferred in parallel to Memory Multiplexer 12 and to Parallel Adder Unit 110. The contents of Flip-Flops P14P09 of P- Register 103 are transferred to V-Register 104.

V-Register 104 is a 6-bit register comprising Flip-Flops V05V00. V-Register 104 is termed the status word address or the volume register and stores the address of one of 64 protect status words utilized in protecting the contents of Magnetic Core Storage Unit 13. V-Register 104 is adapted to receive, by parallel transfer, information from either P-Register 103 or I-Register 101. During addressing of Memory 11, the contents of V-Register 104 are employed to determine Whether or not the appropriate protect status word is available to identify the protect status of the addressed memory location.

L-Rcgister 105 is a 16-bit register comprising Flip- Flops LISL00. L-Register 105 is employed to store the appropriate protect status word which identifies the protect status for eight 64-word blocks of memory locations in Magnetic Core Storage Unit 13. L-Register 105 is adapted to receive, by parallel transfer, the output of selected bits of Parallel Adder Unit 110. I-Counter 106 is a 5-bit binary counter comprising Flip-Flops J04-J00. J-Counter 106 is normally employed to count shifts during shift operations in Arithmetic and Control Unit 10 and is also used during multiply and divide operations. J- Counter 106 is capable of receiving, by parallel transfer, information from I-Register 101. The contents of J- Counter 106 may be transferred in parallel to l-Register 101.

The Q-Register of Arithmetic and Control Unit 10 comprises memory location 00010 of Magnetic Core Storage Unit 13 and is an auxiliary register used to assist A-Register 102 in performing arithmetic and logical operations. The Q-Register is used to store the multiplier and the least-significant bits of a product during a multiplication operation. During a division operation, the Q- Register stores the least-significant bits of the dividend and quotient. The Q-Register may be utilized in conjunction with A-Register 102 to form a double-length register which may be shifted left or right. The contents of the Q-Register may be directly affected by certain instructions.

Parallel Adder Unit 110 is a conventional 24-bit parallel adder which performs all arithmetic operations in Arithmetic and Control Unit 10. Parallel Adder Unit 110 is capable of receiving, by parallel transfer, the contents of B-Register 100, I-Register 101, A-Register 102 and P-Register 103. The output of Parallel Adder Unit 110 may be applied to B-Register 100, I-Register 101, A-Register 102 and L-Register 105. Parallel Adder Unit 110 also serves as a buffer during input/output operations involving data transfers with peripheral Input/Output Buffer 16 and Input/Output Expander 18. During input/output operations, Parallel Adder Unit 110 receives inputs from N0 Bus 25 and applies its output to I/O Bus 25.

Timing Control Unit 111 provides timing signals to control the sequence and time of occurrance of events in Arithmetic and Control Unit 10. The details of Timing Control Unit 111 are illustrated in FIGURES 5 and 6. 

